package com.smartleanx.module.hrm.eums.risk;

import lombok.Getter;
import lombok.RequiredArgsConstructor;

/**
 * 风险类型
 *
 * @author tengcj
 * @since 2024/6/7
 */
@Getter
@RequiredArgsConstructor
public enum RiskTypeEnum {

    /**
     * 1	入职审查与档案管理	2	{身份证原件照片}未上传
     * 2	入职审查与档案管理	1	{学历证明}未上传
     * 3	入职审查与档案管理	1	{入职登记表}未上传
     * 4	入职审查与档案管理	2	{入职体检表}未上传
     * 5	入职审查与档案管理	2	{入职承诺书}未上传
     * 6	入职审查与档案管理	2	{上家公司离职证明}未上传
     * 7	合同签订	2	{劳动合同}未上传
     * 8	转正	1	{试用期考核表}未上传
     * 9	降级	1	{降级通知表}未上传
     * 10	调岗	2	{调岗申请表}未上传
     * 11	离职	2	{离职申请书}未上传
     * 12	离职	2	{离职承诺书}未上传
     * 13	试用期的期限	2	试用期限超期
     * 14	劳动合同的续签	2	{劳动合同}未上传
     * 15	劳动合同的解除	2	{离职协议}未上传
     * 16	规章制度制定及实施	2	没有规章制度
     * 17	规章制度制定及实施	2	规章制度制定不否符合民主程序
     * 18	规章制度制定及实施	2	规章制度没有向员工告知
     * 19	社保缴纳	2	没有缴纳员工社保
     */

    ID_CARD_PHOTO(100L, "入职审查与档案管理", 2, "{身份证原件照片}未上传", 1, 1, "员工入职资料", 5, 1002, "身份证原照片"),
    EDUCATION_PROOF(200L, "入职审查与档案管理", 1, "{学历证明}未上传", 1, 1, "员工入职资料", 5, 1003, "学历证明"),
    ENTRY_REGISTRATION_FORM(300L, "入职审查与档案管理", 1, "{入职登记表}未上传", 1, 1, "员工入职资料", 5, 1011, "入职登记表"),
    ENTRY_EXAMINATION_FORM(400L, "入职审查与档案管理", 2, "{入职体检表}未上传", 1, 1, "员工入职资料", 5, 1012, "入职体检表"),
    ENTRY_COMMITMENT_LETTER(500L, "入职审查与档案管理", 2, "{入职承诺书}未上传", 1, 1, "员工入职资料", 5, 1009, "入职承诺书"),
    LEAVE_OF_ABSENCE_PROOF(600L, "入职审查与档案管理", 2, "{上家公司离职证明}未上传", 1, 1, "员工入职资料", 5, 1010, "上家公司离职证明"),
    CONFIDENTIALITY_AGREEMENT(610L, "入职审查与档案管理", 2, "{保密协议}未上传", 1, 1, "员工入职资料", 5, 10121, "保密协议"),
    LABOR_CONTRACT(700L, "合同签订", 2, "{劳动合同}未上传", 3, 2, "员工在职资料", 5_0001, 2001, "劳动合同"),
    PROBATIONARY_APPRAISAL_FORM(800L, "转正", 1, "{试用期考核表}未上传", 1, 2, "员工在职资料", 5, 2003, "试用期考核表"),
    DEMOTION_NOTICE_FORM(900L, "降级", 1, "{降级通知表}未上传", 1, 2, "员工在职资料", 5_0004, 2008, "降级通知书"),
    TRANSFER_APPLICATION_FORM(1000L, "调岗", 2, "{调岗申请表}未上传", 1, 2, "员工在职资料", 5_0004, 2006, "调岗申请表"),
    LEAVE_APPLICATION_FORM(1100L, "离职", 2, "{离职申请书}未上传", 1, 3, "员工离职资料", 5_0003, 3001, "离职申请书"),
    LEAVE_COMMITMENT_LETTER(1200L, "离职", 2, "{离职承诺书}未上传", 1, 3, "员工离职资料", 5_0003, 3002, "离职承诺书"),
    PROBATION_PERIOD(1300L, "试用期的期限", 2, "试用期限超期", 2, null, null, null, null, null),
    LABOR_CONTRACT_EXPIRATION(1400L, "劳动合同续签", 2, "劳动合同未续签", 3, null, null, null, null, null),
    LABOR_CONTRACT_TERMINATION(1500L, "劳动合同解除", 2, "{离职协议}未上传", 1, 3, "员工离职资料", 5_0003, 3003, "离职协议"),
    WORK_HANDOVER_FORM(1510L, "劳动合同解除", 2, "{工作交接表}未上传", 1, 3, "员工离职资料", 5_0003, 3003_1, "工作交接"),
    NO_REGULATION(1600L, "规章制度制定及实施", 2, "无规章制度", 4, null, null, null, null, null),
    REGULATION_UNDEMOCRATIC(1700L, "规章制度制定及实施", 2, "规章制度制定不否符合民主程序", 5, null, null, null, null, null),
    REGULATION_NOT_INFORM(1800L, "规章制度制定及实施", 2, "%s未学习", 4, null, null, null, null, null),
    SOCIAL_SECURITY_PAYMENT(1900L, "社保缴纳", 2, "员工社保未缴纳", 3, null, null, null, null, null),
    LOW_PERFORMANCE(2000L, "绩效考核", 2, "低绩效", 1, 2, "员工在职资料", 5, 2004, "低绩效面谈表");

    /**
     * 风险编号
     */
    private final Long code;

    /**
     * 风险模块
     */
    private final String module;

    /**
     * 风险等级
     */
    private final Integer level;

    /**
     * 风险描述
     */
    private final String content;

    /**
     * 跳转补充模块
     */
    private final Integer redirectType;

    /**
     * 材料附件 stage
     */
    private final Integer stage;

    private final String stageName;

    private final Integer bizType;

    /**
     * 材料附件 bizFileType
     */
    private final Integer bizFileType;

    private final String name;
}
